package com.spring.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @ClassName ComponentScan
 * @Description TODO:手写模拟spring源码——第4步：创建扫描注解
 * @Author lindipei
 * @Date 2023/10/19 17:20
 */
//TODO: @Retention修饰注解，用来表示注解的生命周期; RetentionPolicy.RUNTIME 注解不仅被保存到class文件中，jvm加载class文件之后，仍然存在; 运行时也存在; 需要在运行时去动态获取注解信息
@Retention(RetentionPolicy.RUNTIME)
//TODO: @Target：注解的作用目标; ElementType.TYPE:指定到接口、类、枚举、注解上
@Target(ElementType.TYPE)
public @interface ComponentScan {
    String value() default "";
}
